package com.sxf.redis.iredis;

/**
 * 
 * @description: 删除工具类
 * @author: zhangyb@ccccit.com.cn 
 * @date: 2021年1月5日 上午11:51:13
 */
public interface IDeleteRedisUtils {

	/**
	 * 删除数据
	 * @param nameSpace
	 * @param key
	 * @return 删除数据数量
	 */
	Long del(String nameSpace, String[] key);

	/**
	 * 删除数据
	 * @param key
	 * @return
	 */
	default Long del(String[] key) {
		return del(null, key);
	}

	/**
	 * 删除数据
	 * @param nameSpace
	 * @param key
	 * @return
	 */
	default Long del(String nameSpace, String key) {
		return del(nameSpace, new String[] { key });
	}

	/**
	 * 删除数据
	 * @param key
	 * @return
	 */
	default Long del(String key) {
		return del(null, key);
	}

	/**
	 * 删除hash数据
	 * @param nameSpace
	 * @param key redis的key
	 * @param hKeys redis的hkey
	 * @return 删除数据数量
	 */
	Long delHashByKey(String nameSpace, String key, Object[] hKeys);
	
	/**
	 * 删除hash数据
	 * @param key
	 * @param hKeys
	 * @return
	 */
	default Long delHashByKey(String key, Object[] hKeys) {
		return delHashByKey(null, key, hKeys);
	};
	
	/**
	 * 删除hash数据
	 * @param key
	 * @param hKey
	 * @return
	 */
	default Long delHashByKey(String key, Object hKey) {
		return delHashByKey(null, key, new Object[] {hKey});
	};

}
